Are Object Graphs Extracted Using Abstract Interpretation Significantly Different from the Code? (Extended Version)
نویسندگان
چکیده
To evolve object-oriented code, one must understand both the code structure in terms of classes, and the runtime structure in terms of abstractions of objects that are being created and relations between those objects. To help with this understanding, static program analysis can extract heap abstractions such as object graphs. But the extracted graphs can become too large if they do not sufficiently abstract objects, or too imprecise if they abstract objects excessively to the point of being similar to a class diagram that shows one box for a class to represent all the instances of that class. One previously proposed solution uses both annotations and abstract interpretation to extract a global, hierarchical, abstract object graph that conveys both abstraction and design intent, but can still be related to the code structure. In this paper, we define metrics that relate nodes and edges in the object graph to elements in the code structure to measure how they differ, and if the differences are indicative of language or design features such as encapsulation, polymorphism and inheritance. We compute the metrics across eight systems totaling over 100 KLOC, and show a statistically significant difference between the code and the object graph. In several cases, the magnitude of this difference is large. This technical report revises an earlier workshop paper [AVA13]. A shorter version will appear as: Abi-Antoun, M., Chandrashekar, S., Vanciu, R., and Giang, A. Are Object Graphs Extracted Using Abstract Interpretation Significantly Different from the Code? In IEEE International Working Conference on Source Code Analysis and Manipulation, 10 pages. 2014. This material is based upon work supported by the Maryland Procurement Office under Contract No. H9823014-C-0140.
منابع مشابه
IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs
Derived values are values calculated from base values. They can be expressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expre...
متن کاملAttributed graph transformation with inheritance: Efficient conflict detection and local confluence analysis using abstract critical pairs
Inheritance is an important and widely spread concept enabling the elegant expression of hierarchy in object-oriented software programs or models. It has been defined for graphs and graph transformations enhancing the applicability of this formal technique. Up to now, for the analysis of transformationswith inheritance a flattening constructionhas beenused, which yields all the well-known resul...
متن کاملObject Graphs with Ownership Domains: An Empirical Study
Researchers have proposed many ownership type systems but reported limited experience with most of them on real object-oriented code. Only a few systems have been implemented, and there have been few substantial case studies done with those systems. In order to better empirically evaluate ownership type systems, we have therefore conducted a number of case studies applying the Ownership Domains...
متن کاملMass Attenuation Coefficients of Human Body Organs using MCNPX Monte Carlo Code
Introduction: Investigation of radiation interaction with living organs has always been a thrust area in medical and radiation physics. The investigated results are being used in medical physics for developing improved and sensitive techniques and minimizing radiation exposure. In this study, mass attenuation coefficients of different human organs and biological materials such as adipose, blood...
متن کاملFisher Discriminant Analysis (FDA), a supervised feature reduction method in seismic object detection
Automatic processes on seismic data using pattern recognition is one of the interesting fields in geophysical data interpretation. One part is the seismic object detection using different supervised classification methods that finally has an output as a probability cube. Object detection process starts with generating a pickset of two classes labeled as object and non-object and then selecting ...
متن کامل